package com.anivia.common.core.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

/**
 * 数据权限枚举
 *
 * @author wangj
 */
@AllArgsConstructor
@NoArgsConstructor
@Getter
public enum DataScopeEnum implements BaseEnum {
    /**
     * 全公司
     */
    ALL(1, "全公司"),
    /**
     * 本部门以及子部门
     */
    DEPT_AND_SUB(2, "本部门及下级部门"),
    /**
     * 仅本部门
     */
    DEPT(3, "本部门"),
    /**
     * 仅本人
     */
    SELF(4, "本人"),
    /**
     * 自定义部门
     */
    CUSTOM_DEPT(5, "自定义部门"),
    /**
     * 下级部门
     */
    SUB_DEPT(6, "下级部门"),
    ;

    @EnumValue
    private Integer code;
    private String desc;
    ;

    public String toString() {
        return name() + "-" + getDesc();
    }

    public static DataScopeEnum getByCode(Integer code) {
        for (DataScopeEnum enumItem : values()) {
            if (enumItem.code.equals(code)) {
                return enumItem;
            }
        }
        return null;
    }
}
